package com.shrct.businessprocess.project;

import com.shrct.businessprocess.organization.RCEmployee;
import com.shrct.businessprocess.project.RCCostShareYearConfig;
import com.shrct.businessprocess.project.impl.RCCostShareYearConfigItemImpl;
import com.shrct.businessprocess.project.proxy.RCCostShareYearConfigItemProxy;
import edu.fudan.mylang.pf.EntityImplementation;
import edu.fudan.mylang.pf.IModelObject;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;

@EntityImplementation(implementBy = RCCostShareYearConfigItemImpl.class)
public interface RCCostShareYearConfigItem extends IModelObject {
  public abstract RCCostShareYearConfig getConfig();
  
  public abstract RCCostShareYearConfigItem setConfig(final RCCostShareYearConfig config);
  
  public abstract RCEmployee getShareTarget();
  
  public abstract RCCostShareYearConfigItem setShareTarget(final RCEmployee shareTarget);
  
  public abstract Double getTotalCost();
  
  public abstract RCCostShareYearConfigItem setTotalCost(final Double totalCost);
  
  public abstract Double getShareRate();
  
  public abstract RCCostShareYearConfigItem setShareRate(final Double shareRate);
  
  public abstract void update(final Procedure1<? super RCCostShareYearConfigItem> updater);
  
  public abstract void checkValid();
  
  public abstract RCCostShareYearConfigItemProxy toProxy();
}
